]> dgit.raspbian.org Git - gnome-shell.git/commit
dash: Do not destroy a dash label twice
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Mon, 17 Apr 2023 17:53:34 +0000 (19:53 +0200)
committerMarge Bot <marge-bot@gnome.org>
Mon, 17 Apr 2023 20:22:12 +0000 (20:22 +0000)
commit8bf06bfc9f87c665959e1ff3240f227e5cf224df
treed971d3828859e6990f77f921e0fce7d8ccfff8bc
parentecb274cee066591591127e03e10a582e9f2c0397
dash: Do not destroy a dash label twice

Dash labels are children of the main uiGroup and so could be destroyed
before their logical-owner DashItemContainer during shutdown.

This implies that we could destroy them twice. To avoid this, unset them
when destroyed.

This is mostly visible when using dash-to-dock, but it's still
technically possible with upstream code:

** Message: 19:57:49.847: Shutting down GNOME Shell

(gnome-shell:2788214): Gjs-CRITICAL **: 19:57:49.933: Object St.Label
 (0x55b33668eab0), has been already disposed — impossible to access it.
 This might be caused by the object having been destroyed from C code using
something such as destroy(), dispose(), or remove() vfuncs.
  == Stack trace for context 0x55b3345fd3d0 ==
  #0   7ffeabd810d0 b   /data/GNOME/gnome-shell/js/ui/dash.js:86
  #1   55b335b62f88 i   /data/GNOME/JHBUILD_HOME/.local/share/gnome-shell/extensions/dash-to-dock@micxgx.gmail.com/docking.js:487
  #2   7ffeabd838f0 b   self-hosted:1121
  #3   55b335b62ec8 i   /data/GNOME/gnome-shell/js/ui/layout.js:240

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2739>
js/ui/dash.js